Skip to main content

JS 阻止冒泡?应用场景?

  • 常用浏览器e.stopPropagation()
  • IE 浏览器则是使用window.event.cancelBubble = true
  • 原生监听函数 addEventListener 第三参数设为 true,阻止冒泡(默认为 false)
function stopBubble(e) {
if (e && e.stopPropagation) {
e.stopPropagation()
} else {
window.event.cancelBubble = true
}
}
div.addEventListener(
'click',
function () {
alert('你点击了!')
},
true
)

应用场景

我们单击 test 时,会依次触发 alert(“li”),alert(“ul”),alert(“div”),这就是事件冒泡

<div id="div" onclick='alert("div");'>
<ul onclick='alert("ul");'>
<li onclick='alert("li");'>test</li>
</ul>
</div>